package 传智播客_黑马.java基础.HashCode;

/*
哈希值:是一个十进制的整数,有系统随机给出(就是对象的地址值,是一个逻辑地址,是模拟出来的地址,不是数据实际存储的物理地址)
在Object类有一个方法可以获取对象的哈希值
    int hashCode() 返回对象的哈希码值
    hashCode方法的源码:
        public native int hashCode();
        native:代表该方法调用的是本地操作系统的方法
 */
public class HashCode {
    public static void main(String[] args) {
        //Person继承了Object类,所以可以使用hashCode类的hashCode方法
        Person p1 = new Person();
        int j = p1.hashCode();
        System.out.println(j);

        Person p2 = new Person();
        int h = p2.hashCode();
        System.out.println(h);

        /*
        toString方法
         */
        System.out.println(p1);//知识前面数字的十六进制形式
        System.out.println(p2);

        /*
        String类的哈希值
            String类重写Object类的hashCode方法
         */
        String s1 = new String("abc");
        String s2 = new String("abc");
        System.out.println(s1.hashCode());
        System.out.println(s2.hashCode());

        System.out.println("重地".hashCode());
        System.out.println("通话".hashCode());
    }
}
